package com.gui;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import com.fileio.FileIO;
import com.fish.World;
/**
* @author Dror
*
* email: gumjum.o.o@gmail.com
*
*/
public class ShopMenu extends Menu implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -5866738010940478354L;
JLabel infoLabel;
JLabel moneyLabel;
JButton selectButtons[];
JButton buyButton;
JButton backButton;
String selected = "goldfish";
String info;
float selectedValue = 0;
public ShopMenu() {
super();
infoLabel = new JLabel("fish information");
infoLabel.setFocusable(false);
moneyLabel = new JLabel("<money>");
moneyLabel.setFocusable(false);
Element shop = (Element)FileIO.shopDB.getElementsByTagName("shop").item(0);
NodeList l = shop.getElementsByTagName("item");
selectButtons = new JButton[l.getLength()];
Container jp = new Container();
jp.setBackground(bg12);
jp.setLayout(new GridLayout(selectButtons.length+1,2));
jp.add(new JLabel("item"));
jp.add(new JLabel("cost"));
for(int i = 0;i<l.getLength();i++){
String id = ((Element)l.item(i)).getAttribute("id");
selectButtons[i] = new JButton(id);
// selectButtons[i].setIcon(new ImageIcon("data/"+((Element)l.item(i)).getAttribute("id")+".jpg"));
selectButtons[i].setFocusable(false);
selectButtons[i].setBackground(lvl3);
selectButtons[i].addActionListener(this);
jp.add(selectButtons[i]);
jp.add(new JLabel(World.getShopValue(id)+"$"));
}
jp.setSize(200, 200);
buyButton = new JButton("Buy");
buyButton.setFocusable(false);
buyButton.setBackground(lvl3);
buyButton.addActionListener(this);
backButton = new JButton("back");
backButton.setFocusable(false);
backButton.setBackground(lvl2);
backButton.addActionListener(this);
this.setFocusable(false);
this.setBackground(bg12);
GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
layout.setVerticalGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(backButton))
.addGroup(layout.createSequentialGroup()
.addComponent(jp))
.addGroup(layout.createSequentialGroup()
// .addComponent(buyButton)
.addComponent(moneyLabel))
// .addComponent(infoLabel)
);
// layout.linkSize(jp,infoLabel);
layout.linkSize(SwingConstants.HORIZONTAL, jp,moneyLabel);
layout.linkSize(SwingConstants.VERTICAL, jp,moneyLabel);
// layout.linkSize(buyButton,moneyLabel);
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addComponent(backButton))
.addGroup(layout.createParallelGroup()
.addComponent(jp))
.addGroup(layout.createParallelGroup()
// .addComponent(buyButton)
.addComponent(moneyLabel))
// .addComponent(infoLabel)
);
updateInfo();
}
public void paintComponent(Graphics g)
{
moneyLabel.setText("money: " + Math.round(World.money) + "$");
super.paintComponent(g);
}
public void updateInfo(){
info = FileIO.readTextFile("data/"+selected+".html");
selectedValue = World.getShopValue(selected);
info += "<br>cost: " + selectedValue + "$";
info += "</body></html>";
infoLabel.setText(info);
}
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if(obj == backButton){
mp.layout.replace(mp.curMenu, mp.mainMenu);
mp.curMenu = mp.mainMenu;
}
// else if(obj == buyButton){
// if(World.money >= selectedValue){
// World.money -= selectedValue;
// if(!selected.equals("food")){
// World.addFish(selected);
// }
// else{
// World.addFood(selected);
// }
// }
// }
else if(obj instanceof JButton){
for(JButton b: selectButtons)
if(b.equals(obj)){
selected = b.getText();
World.money -= World.getShopValue(selected);
if(!selected.equals("food")){
World.addFish(selected);
}else{
World.addFood(selected);
}
// updateInfo();
break;
}
}
}
}